在說第二天分頁的從無到有的版本前,先認識一下資料庫使用的CRUD
就是網站https://laihao2.com/
作品列表新增:這裡就是資料庫使用的CRUD
裡面的新增和查詢,再加上下載檔案
在這裡練習的MVC從資料庫開始~整個走完
ASP.NET開發操作流程:資料表設定好>再寫程式:加入資料庫>串聯資料庫>產生Models裡面類別檔dao>按:建置>Controllers裡面的Entities>產生畫面View
資料表的SQL
USE [ProductDB]
GO
/****** Object: Table [dbo].[Product] Script Date: 2024/9/11 下午 10:18:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Product](
[編號] [nvarchar](50) NOT NULL,
[品名] [nvarchar](50) NULL,
[單價] [int] NULL,
[備註] [nvarchar](50) NULL,
[單據編號] [nvarchar](50) NULL,
[data] [datetime] NULL,
CONSTRAINT [PK_Product] PRIMARY KEY CLUSTERED
(
[編號] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
建立後的樣子
目前裡面有填的資料
再寫程式:加入資料庫>串聯資料庫>產生Models裡面類別檔dao>
到專案建完MVC之後的檔案顯示
Models選加入,然後選>新增項目
新增項目 選資料,再選 ADO.NET實體資料模型
選第四個 來自資料庫的Code First選這個之後資料表有新增欄位才可以單獨新增
跟本機資料庫連接,如果是在公司有時候無法連也是因為權限不足要請MIS設定
測試資料庫是否有連線成功
選擇資料表
回到Model查看,就自動新增,兩個檔案
對照ASP.NET開發操作流程:資料表設定好>再寫程式:加入資料庫>串聯資料庫>產生Models裡面類別檔dao>按:建置>Controllers裡面的Entities>產生畫面View
就是產生Models裡面類別檔dao
看到最下面的Web.config
填入跟本機資料庫的帳密連線
<add name=“ProductDBContext” connectionString=“data source=127.0.0.1;initial catalog=ProductDB;user id=帳號;password=密碼;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
ASP.NET開發操作流程:資料表設定好>再寫程式:加入資料庫>串聯資料庫>產生Models裡面類別檔dao>按:建置>Controllers裡面的Entities>產生畫面View
按:建置>
Controllers裡面的Entities>
程式碼
ProductDBContext _db = new ProductDBContext();
public ActionResult Index()
{
var products = _db.Products.ToList();
return View(products);
}
解釋程式碼
這段代碼是一個用於 ASP.NET MVC 框架的控制器操作方法,功能是在視圖中顯示產品列表。具體解釋如下:
ProductDBContext _db = new ProductDBContext();
:
_db
,用於與數據庫交互。ProductDBContext
是繼承自 DbContext
的類,代表與 Products
表相關的數據庫操作。public ActionResult Index()
:
Index
。它會處理用戶請求,並返回一個視圖(頁面)。ActionResult
是返回類型,表示該方法可以返回不同的結果類型,比如視圖、重定向或 JSON 數據。var products = _db.Products.ToList();
:
Products
表的所有產品記錄,並將它們存儲在變量 products
中。ToList()
方法將查詢結果轉換為列表形式。return View(products);
:
products
傳遞給視圖(前端頁面),用於在頁面中顯示產品數據。總結來說,這個方法從數據庫中讀取所有產品,並將它們傳遞給視圖,通常對應的是一個顯示產品列表的頁面。
產生畫面View
下一步
下一步
產生簡單版的程式碼
修改成自己要的
@model IEnumerable<WebApplication5.Models.Product>
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<p>
@Html.ActionLink("下載範本", "DownloadTemplate", "Home")
</p>
<h3>使用SOP</h3>
<ol>
<li>
按"下載範本"右上顯示下載
</li>
<li>
開啟檔案
</li>
<li>
word上方工作列選"郵件"
</li>
<li>
工作列選"郵件"看"預覽結果"
</li>
<li>
"預覽結果"依序選擇
</li>
<li> 列印word
</li>
</ol>
<table class="table">
<tr>
<th>
序號
</th>
<th>
@Html.DisplayNameFor(model => model.編號)
</th>
<th>
@Html.DisplayNameFor(model => model.品名)
</th>
<th>
@Html.DisplayNameFor(model => model.單價)
</th>
<th>
@Html.DisplayNameFor(model => model.備註)
</th>
<th></th>
</tr>
@{
int counter = 1;
}
@foreach (var item in Model)
{
<tr>
<td>@(counter++)</td>
<td>
@Html.DisplayFor(modelItem => item.編號)
</td>
<td>
@Html.DisplayFor(modelItem => item.品名)
</td>
<td>
@Html.DisplayFor(modelItem => item.單價)
</td>
<td>
@Html.DisplayFor(modelItem => item.備註)
</td>
@*
<td>
@Html.ActionLink("Edit", "Edit", new { id = item.編號 }) |
@Html.ActionLink("Details", "Details", new { id = item.編號 }) |
@Html.ActionLink("Delete", "Delete", new { id = item.編號 })
</td>*@
</tr>
}
</table>
解釋程式碼
這段代碼是一個 ASP.NET MVC 視圖文件,使用 Razor 語法來生成一個 HTML 頁面。它的功能是顯示一個產品列表,並且提供了一些操作和說明。以下是對這段代碼的詳細解釋:
@model IEnumerable<WebApplication5.Models.Product>
:
IEnumerable<Product>
類型的模型相關聯。也就是說,視圖將接收一個 Product
對象的集合,並對每個產品進行渲染。Product
是模型類,定義了產品的屬性。@{ ViewBag.Title = "Index"; }
:
<title>
標簽。<h2>Index</h2>
:
操作鏈接:
@Html.ActionLink("Create New", "Create")
:
Create
動作方法。@Html.ActionLink("下載範本", "DownloadTemplate", "Home")
:
Home
控制器中 DownloadTemplate
動作的超鏈接,鏈接的文本是 "下載範本"。使用SOP的步驟說明:
<ol>
和 <li>
標簽,列出了下載模板和操作的詳細步驟說明。這段內容是給用戶操作時的指南。表格結構:
<table class="table">
:
table
樣式類的表格。<th>
):
<th>
標簽是表頭,分別對應 "序號"、"編號"、"品名"、"單價"、"備註"。@Html.DisplayNameFor(model => model.編號)
等代碼動態生成表頭名稱,基於模型屬性的名稱。動態內容部分:
@foreach (var item in Model)
:
Model
(即產品列表),每個 item
表示一個產品。@Html.DisplayFor(modelItem => item.編號)
:
編號
、品名
、單價
和 備註
。counter
是一個計數器,顯示每一行的序號,初始值為 1,隨著每次循環遞增。注釋的部分:
@*
和 *@
之間的內容是注釋掉的,暫時不顯示這些操作鏈接。Edit
(編輯)、Details
(詳情)和 Delete
(刪除),每個鏈接都根據產品的 編號
生成相應的操作。總結來說,這個視圖的功能是生成一個產品列表表格,包含產品的 編號
、品名
、單價
和 備註
等信息,並提供下載模板和其他操作的超鏈接。
這個解釋完畢之後再來說還有安裝新的原件的分頁功能~感覺比較順
大家明天見~